#include "manager_ctrl_impl.h"
bool ManagerCtrlImpl::addMgr(Manager& mgr)
{
	char name[20];
	char pwd[20];
	cout << "请输入新管理员账号:";
	cin.clear();
	get_str(name,20);
	for(int i=0;i<mgrArr.size();i++)
	{
		if(0 == strcmp(name,mgrArr[i].getName()))
		{
			cout << "该账号已经存在！操作撤销"<< endl;
			anykey_continue();
			return false;
		}
	}
	cout << "请输入新管理员密码:";
	cin.clear();
	clear();
	get_str(pwd,20,false);
	int c_sort = 0;
	int p_len = 0;
	for(int i=0;pwd[i]!='\0';i++)
	{
		p_len++;
	}
	if(p_len<6)
	{
		cout << "密码过短!请重新设置" << endl;
		anykey_continue();
		return false;
	}
	int flag1=1;
	int flag2=1;
	int flag3=1;
	for(int i = 0;i<p_len;i++)
	{
		if('0'<=pwd[i]&&'9'>=pwd[i]&&flag1)
		{
			flag1=0;
			c_sort++;
		}
		if(('a'<=pwd[i]&&'z'>=pwd[i]||'A'<=pwd[i]&&'Z'>=pwd[i])&&flag2)
		{
			flag2=0;
			c_sort++;
		}
		if(pwd[i] == '_'&&flag3)
		{
			flag3=0;
			c_sort++;
		}
	}
	if(c_sort<2)
	{
		cout << "密码过于简单,请尝试数字/字母/下划线组合的形式设置密码!" << endl;
		anykey_continue();
		return false;
	}
	mgr.setName(name);
	mgr.setPwd(pwd);
	mgr.setId(getMgrId());
	mgrArr.push_back(mgr);
	cout << "新增管理员成功!"<<endl;
	anykey_continue();
	return true;
}
bool ManagerCtrlImpl::delMgr(int ipx)
{
	for(int i=0;i<mgrArr.size();i++)
	{
		if(ipx==mgrArr[i].getId())
		{
			mgrArr.erase(mgrArr.begin()+i);
			cout << "操作成功!" << endl;
			anykey_continue();
			return true;
		}
	}
	cout << "操作失败,该管理员id不存在! "<< endl;
	anykey_continue();
	return false;
}
vector<Manager>& ManagerCtrlImpl::listMgr(void)
{
	return mgrArr;
}
